package com.why.simpleboot.core.common.utils;

import io.netty.handler.codec.http.HttpHeaderNames;
import io.netty.handler.codec.http.HttpHeaders;
import io.netty.util.AsciiString;

import java.beans.PropertyEditor;
import java.beans.PropertyEditorManager;

/**
 * @program: why-simpleboot-framework
 * @description:
 * @author: @why
 * @create: 2021-05-23 17:39
 **/
public class GeneralUtlis {
    /**
     * 将字符串解析成基本数据类型
     *
     * @param targetType:目标类型
     * @param text：数据
     * @return
     */
    public static Object convert(Class<?> targetType, String text) {
        PropertyEditor editor = PropertyEditorManager.findEditor(targetType);
        editor.setAsText(text);
        return editor.getValue();
    }

    /**
     * 判断请求头中的类型和期望的类型是否一样。
     *
     * @param httpHeaders
     * @param expect
     * @return
     */
    public static boolean isAvailableContentType(HttpHeaders httpHeaders, AsciiString expect) {
        String content = httpHeaders.get(HttpHeaderNames.CONTENT_TYPE);
//        如果请求头没有得到对应的类型,那就false直接终止请求
        if(content==null){
            return false;
        }
//        注意嗷,string的equal方法判断的是当前对象是否为string类型的,显然 AsciiString 不是,因此要调用 contentEquals方法
        return content.contentEquals(expect);

    }


}